home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 1.iso / ARGONET / PD / FILER / X-FILES.ZIP / 057 / !X-Files / c / list < prev    next >
Text File  |  1996-04-04  |  975b  |  56 lines

  1. /* list.c */
  2.  
  3. #include <stdlib.h>
  4. #include "chunks.h"
  5.  
  6. void xFiles_InitItem(xFiles_listItem *pItem)
  7. {
  8.    pItem->prev =
  9.    pItem->next = NULL;
  10. }
  11.  
  12. void xFiles_InitList(xFiles_list *pList)
  13. {
  14.    pList->head =
  15.    pList->tail = NULL;
  16. }
  17.  
  18. void xFiles_AddAtHead(xFiles_list *pList, xFiles_listItem *pItem)
  19. {
  20.    pItem->prev = NULL;
  21.    pItem->next = pList->head;
  22.  
  23.    if (pList->tail)
  24.       pList->head->prev = pItem;
  25.    else
  26.       pList->tail = pItem;
  27.  
  28.    pList->head = pItem;
  29. }
  30.  
  31. void xFiles_AddAtTail(xFiles_list *pList, xFiles_listItem *pItem)
  32. {
  33.    pItem->prev = pList->tail;
  34.    pItem->next = NULL;
  35.  
  36.    if (pList->head)
  37.       pList->tail->next = pItem;
  38.    else
  39.       pList->head = pItem;
  40.  
  41.    pList->tail = pItem;
  42. }
  43.  
  44. void xFiles_Remove(xFiles_list *pList, xFiles_listItem *pItem)
  45. {
  46.    if (pItem->prev)
  47.       pItem->prev->next = pItem->next;
  48.    else
  49.       pList->head = pItem->next;
  50.  
  51.    if (pItem->next)
  52.       pItem->next->prev = pItem->prev;
  53.    else
  54.       pList->tail = pItem->prev;
  55. }
  56.